﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Forma_6 : System.Web.UI.Page
{
    private String SessionID;
    private Boolean FolioExists;
    private Int32 Folio;
    public String ConnectionString;

    protected void Page_Load(object sender, EventArgs e)
    {
        SessionValidation();

        // Se verifíca si existe un Folio actual para cargar los datos
        // que han sido previamente guardados
        DatabaseConnection dbCon = new DatabaseConnection();
        FolioExists = dbCon.FolioExistsForCurrentUser(ref Folio, SessionID);
        ActivosDataSource.ConnectionString = dbCon.GetConnectionString();
        PasivosDataSource.ConnectionString = dbCon.GetConnectionString();
        dbCon.CloseConnection();
        if (FolioExists && !Page.IsPostBack)
        {
            //LoadFormWithPastData();
        }

    }

    protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e)
    {
        if (e.CommandName == "Insert")
        {
            TextBox txtInstitucion = (TextBox)e.Item.FindControl("txtInstitucion");
            TextBox txtDescripcion = (TextBox)e.Item.FindControl("txtDescripcion");
            TextBox txtMontoActual = (TextBox)e.Item.FindControl("txtMontoActual");
            TextBox txtNumeroCuenta = (TextBox)e.Item.FindControl("txtNumeroCuenta");
            TextBox txtIngresoAnual = (TextBox)e.Item.FindControl("txtIngresoAnual");

            string insertCommand = "INSERT INTO [Activos] ([Folio] ,[Activos_Institucion] ,[Activos_Descripcion] ,[Activos_MontoActual] ,[Activos_NumeroCuenta] ,[Activos_IngresoAnual]) "
                                                     + "Values(" + Folio + ",'" + txtInstitucion.Text + "','" + txtDescripcion.Text + "', " + txtMontoActual.Text + ", '" + txtNumeroCuenta.Text + "', " + txtIngresoAnual.Text + ");";
            //Agregar el Folio al query
            ActivosDataSource.InsertCommand = insertCommand;
        }
        else if (e.CommandName == "Update")
        {
            TextBox IdActivos = (TextBox)e.Item.FindControl("txtUpIdActivos");
            TextBox txtUpInstitucion = (TextBox)e.Item.FindControl("txtUpInstitucion");
            TextBox txtUpDescripcion = (TextBox)e.Item.FindControl("txtUpDescripcion");
            TextBox txtUpMontoActual = (TextBox)e.Item.FindControl("txtUpMontoActual");
            TextBox txtUpNumeroCuenta = (TextBox)e.Item.FindControl("txtUpNumeroCuenta");
            TextBox txtUpIngresoAnual = (TextBox)e.Item.FindControl("txtUpIngresoAnual");

            string updateCommand = "Update [Activos] set "
                                   + "[Activos_Institucion]='" + txtUpInstitucion.Text + "', "
                                   + "[Activos_Descripcion]='" + txtUpDescripcion.Text + "', "
                                   + "[Activos_MontoActual]=" + txtUpMontoActual.Text + " , "
                                   + "[Activos_NumeroCuenta]='" + txtUpNumeroCuenta.Text + "', "
                                   + "[Activos_IngresoAnual]=" + txtUpIngresoAnual.Text + " "
                                   + "WHERE [IdActivos] = " + IdActivos.Text + " AND [Folio]=" + Convert.ToInt32(Folio) + ";";
            //Poner el folio de la sesion;
            ActivosDataSource.UpdateCommand = updateCommand;
        }
        else if (e.CommandName == "Delete")
        {
            TextBox IdActivos = (TextBox)e.Item.FindControl("txtUpIdActivos");
            string deleteCommand = "DELETE FROM [Activos] where [IdActivos]=" + Convert.ToInt32(IdActivos.Text);
            ActivosDataSource.DeleteCommand = deleteCommand;
        }
    }

    protected void ListView2_ItemCommand(object sender, ListViewCommandEventArgs e)
    {
        if (e.CommandName == "Insert")
        {
            TextBox txtInstitucion = (TextBox)e.Item.FindControl("txtInstitucion");
            TextBox txtNumeroCuenta = (TextBox)e.Item.FindControl("txtNumeroCuenta");
            TextBox txtMontoActual = (TextBox)e.Item.FindControl("txtMontoActual");
            TextBox txtMontoAdeudado = (TextBox)e.Item.FindControl("txtMontoAdeudado");
            TextBox txtPlazo = (TextBox)e.Item.FindControl("txtPlazo");
            TextBox txtPagoMensual = (TextBox)e.Item.FindControl("txtPagoMensual");

            string insertCommand = "INSERT INTO [Pasivos] ([Folio] ,[Pasivos_Institucion] ,[Pasivos_NumeroCuenta] ,[Pasivos_MontoActual] ,[Pasivos_MontoAdeudado] ,[Pasivos_Plazo] ,[Pasivos_PagoMensual]) "
                                                     + "VALUES(" + Folio + ",'" + txtInstitucion.Text + "',' " + txtNumeroCuenta.Text + "', " + txtMontoActual.Text + ", " + txtMontoAdeudado.Text + ", " + txtPlazo.Text + ", " + txtPagoMensual.Text + ");";
            //Agregar el Folio al query
            PasivosDataSource.InsertCommand = insertCommand;
        }
        else if (e.CommandName == "Update")
        {
            TextBox IdPasivos = (TextBox)e.Item.FindControl("txtUpIdPasivos");
            TextBox txtUpInstitucion = (TextBox)e.Item.FindControl("txtUpInstitucion");
            TextBox txtUpNumeroCuenta = (TextBox)e.Item.FindControl("txtUpNumeroCuenta");
            TextBox txtUpMontoActual = (TextBox)e.Item.FindControl("txtUpMontoActual");
            TextBox txtUpMontoAdeudado = (TextBox)e.Item.FindControl("txtUpMontoAdeudado");
            TextBox txtUpPlazo = (TextBox)e.Item.FindControl("txtUpPlazo");
            TextBox txtUpPagoMensual = (TextBox)e.Item.FindControl("txtUpPagoMensual");
            string updateCommand = "Update [Pasivos] set "
                                   + "[Pasivos_Institucion]='" + txtUpInstitucion.Text + "', "
                                   + "[Pasivos_NumeroCuenta]='" + txtUpNumeroCuenta.Text + "', "
                                   + "[Pasivos_MontoActual]=" + txtUpMontoActual.Text + ", "
                                   + "[Pasivos_MontoAdeudado]=" + txtUpMontoAdeudado.Text + ", "
                                   + "[Pasivos_Plazo]=" + txtUpPlazo.Text + ", "
                                   + "[Pasivos_PagoMensual]=" + txtUpPagoMensual.Text + " "
                                   + "WHERE [IdPasivos] = " + IdPasivos.Text + " AND [Folio]=" + Convert.ToInt32(Folio) + ";";//Poner el folio de la sesion;
            PasivosDataSource.UpdateCommand = updateCommand;
        }
        else if (e.CommandName == "Delete")
        {
            TextBox IdPasivos = (TextBox)e.Item.FindControl("txtUpIdPasivos");
            string deleteCommand = "DELETE FROM [Pasivos] WHERE [IdPasivos]=" + Convert.ToInt32(IdPasivos.Text);
            PasivosDataSource.DeleteCommand = deleteCommand;
        }
    }

    protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
    {
        e.Command.CommandText = "SELECT * FROM [Activos] WHERE Folio = '" + Folio + "';";
    }

    protected void SqlDataSource2_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
    {
        e.Command.CommandText = "SELECT * FROM [Pasivos] WHERE Folio = '" + Folio + "';";
    }

    protected void Guardar_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/Forma/Forma7.aspx");
    }

    /* Valida que la sesión del usuario sea la correcta para mostrar
     *  el contenido de esta página
     */
    protected void SessionValidation()
    {
        SessionID = (String)Session["SessionID"];
        String UserType = (String)Session["UserType"];

        if (String.IsNullOrEmpty(SessionID) || String.IsNullOrEmpty(UserType))
        {
            Session.RemoveAll();
            Response.Redirect("~/Default.aspx");
        }
        else
        {
            if (!String.Equals(UserType, "Alumnos"))
            {
                Session.RemoveAll();
                Response.Redirect("~/Default.aspx");
            }
        }
    }
}